package br.com.damazzy.util.produto {
	
	import br.com.damazzy.vo.ProdutoVO;
	
	import flash.events.Event;
	
	import mx.containers.VBox;
	import mx.controls.Alert;
	import mx.controls.CheckBox;
	import mx.events.FlexEvent;
	import mx.events.ListEvent;
	
	public class CheckBoxRenderer extends VBox {
		
		private var chkBox: CheckBox;
		private var vo: ProdutoVO;
		private var telaPai: ProdutoSelecao;
		
		public function CheckBoxRenderer() {
			super();
			
			this.addEventListener(FlexEvent.CREATION_COMPLETE, init);
		}
		
		private function init(event: FlexEvent): void {
			
			this.setStyle("horizontalAlign", "center");
			this.setStyle("verticalAlign", "middle");
			
			chkBox = new CheckBox();
			chkBox.addEventListener(ListEvent.CHANGE, checkAcionado);
			this.addChild(chkBox);
		}

		override public function set data(value: Object): void {
            
            super.data = value as Object;
            
            if (value != null) {
            	vo = value as ProdutoVO;
            }

            //atualiza a displayList com o item renderer
            super.invalidateDisplayList();
        }
        
        private function checkAcionado(event: Event): void {
        	
        	telaPai = this.parentDocument as ProdutoSelecao;
        	
        	if (vo != null) {
        		
        		if (chkBox.selected) {
        			
        			if (telaPai.telaVenda.produtoExistenteListaVendas(vo.idProduto)) {
        				Alert.show("Esse produto já existe na lista de compras.", "Aviso!");
        				chkBox.selected = false;
        			} else {
        				
        				if (vo.quantidadeEstoque == "0") {
        					Alert.show("Não existe disponível em estoque o produto selecionado.", "Aviso!");
        					chkBox.selected = false;
        				} else {
        					telaPai.adicionarProdutoListaCompras(vo);	
        				}	
        			}
					
				} else {
					telaPai.removerProdutoListaCompras(vo);
				}	
        	}
        }
	}
	
}